'use strict';

export default class Area {
	/**
	 * 通过序号获取名称。
	 * @param {Array} datas 数据
	 * @param {Number} id 序号
	 * @return {String} 名称
	 */
	static getNameById(datas, id) {
		let name = '';
		for (let i = 0; i < datas.length; i++) {
			if (datas[i].areaId == id) {
				name = datas[i].areaName;
				break;
			}
		}

		return name;
	}

	/*
	 * 格式化责任区数据为选项。
	 * @param datas 数据
	 * @param key 筛选关键字
	 * @param value 筛选值
	 * @return 选项
	 */
	static toOptions(datas = '[{}]', key, value) {
		datas = JSON.parse(datas);
		let options = [];

		if (key !== undefined) {
			for (let i = 0; i < datas.length; i++) {
				if (datas[i][key] === value) {
					options.push({
						value: datas[i].areaId + '',
						label: datas[i].areaName + '',
					});
				}
			}
		} else {
			options = datas.map((x, i) => {
				return {
					value: x.areaId + '',
					label: x.areaName + '',
				};
			});
		}

		return options;
	}

	/*
	 * 获取责任区编号。
	 * @param id 责任区id
	 * @return 责任区编号
	 */
	static getId(id) {
		return `S${id}`;
	}

	/*
	 * 通过id获取选项。
	 * @param {Array} 责任区数据
	 * @param {String|Number} id
	 * @return {Array}
	 */
	static getOptionById(datas, id) {
		return [{
			value: `${id}`,
			label: Area.getNameById(datas, id)
		}];
	}
}
